"""
演示Python的递归
"""

import os


def test_os():
    # 演示os模块的3个基础方法
    print(os.listdir("test"))  # 列出路径下的内容
    print(os.path.isdir("test/a"))  # 判断给定路径是否为文件夹
    print(os.path.exists("test/b"))  # 判断给定路径是否存在


def get_files_recursion_from_dir(path):
    """
    从指定的路径中，使用递归的方式获取其下所有的文件列表
    :param path: 被判断的文件夹
    :return: list，包含全部的文件，如果目录不存在或者无文件，就返回空list
    """
    print(f"当前判断的文件夹是：{path}")
    file_list = []
    if os.path.exists(path):

        for f in os.listdir(path):
            new_path = path + '/' + f
            if os.path.isdir(new_path):
                # 判断当前路径是否是文件夹，如果是文件夹，则递归调用该函数
                # file_list.extend(get_files_recursion_from_dir(new_path))
                file_list += get_files_recursion_from_dir(new_path)  # 这里的+=运算符，效果与extend()方法一样
                pass
            else:
                file_list.append(new_path)
    else:
        print(f"指定的{path}不存在")

    return file_list


if __name__ == '__main__':
    file_list = get_files_recursion_from_dir("test")
    print(file_list)
